package com.ruoyi.system.service;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.ServiceReservation;

import java.util.List;

public interface IServiceReservationService {
    /**
     * 查询预约列表
     */
    List<ServiceReservation> selectServiceReservationList(ServiceReservation reservation);

    /**
     * 查询预约详细
     */
    ServiceReservation selectServiceReservationById(Long id);

    /**
     * 新增预约
     */
    AjaxResult insertServiceReservation(ServiceReservation reservation);

    /**
     * 修改预约
     */
    AjaxResult updateServiceReservation(ServiceReservation reservation);

    /**
     * 取消预约
     */
    AjaxResult cancelReservation(Long id, String cancelReason);

    /**
     * 删除预约
     */
    int deleteServiceReservationById(Long id);

    /**
     * 批量删除预约（Long数组）
     */
    int deleteServiceReservationByIds(Long[] ids);

    /**
     * 批量删除预约（String形式）
     */
    int deleteServiceReservationByIds(String ids);

    /**
     * 获取服务人员的可预约时间段
     */
    List<String> getAvailableTimeSlots(Long providerId, String date);
    
    /**
     * 更新预约状态
     */
    AjaxResult updateReservationStatus(Long id, String status);
}
